Computer communication networks typically include one or more nodes called servers and one or more nodes termed clients. A server provides a service to a client upon receiving a request from the client. FIG. 1 illustrates an example of a service that a network 10 may provide. The client 14 communicates with the server 22 using a communication channel 20. The client 14, via its web browser, transmits (arrow 18) a request to the server 22 for a web page 26. The server 22 executes (arrow 34) all of the page generation code 30 to generate a complete web page 26 and transmits (arrow 38) the web page 26 for display on (arrow 42) the client 14. The generated page 26 represents a snapshot of the state of the server-side data 50 at the point in which the page generation code 30 was executed (arrow 34).
For example, consider that the page generation code 30 generates the page 26 so as to include a list of share prices for certain stocks. The server 22 retrieves (arrow 46) the data 50 (i.e., share price) that was stored in the server storage buffer 54 or received (arrow 58) by the server 22 at the point of time in which the program was executed (arrow 34), or sometime before then. The server transmits (arrow 38) and the client displays (arrow 42) the entire generated page 26. The page 26 remains displayed on the client 14 until the client 14 requests (arrow 18) a refresh of the page 26 (i.e., another transmission of the page 26 with a snapshot of the state of the server-side data 50 at the time of the refresh request). Upon such a request (arrow 18), the server 22 re-executes (arrow 34) the page generation code 30 and transmits the new generated page 26 to (arrow 38) the client 14.
Some systems may have a periodic update, where the client requests (arrow 18) a refresh of the page 26 every specified period of time. Upon re-executing (arrow 34) all of the page generation code 30, the server 22 generates another complete page 26. Again, the page 26 represents a snapshot of the state of the server-side data 50 at the point in which the server 22 re-executes (arrow 34) all of the page generation code 30. The data 50 (e.g., share price) in the generated page 26 may be the same as the period before, thus making the execution (arrow 34) of the page generation code 30 and the transmission (arrow 38) of the page 26 unnecessary. Even when the data has changed, the majority of the page 26 will be static elements, which are unchanged.
Neither the manual nor periodic update keeps the user timely informed of data 50 as the data 50 changes. The updates are almost unrelated to the changes in the data 50; for example, a page 26 can be transmitted although no data has changed. This update unnecessarily uses network communication channel resources, client resources and server resources.